Wykres pochodzi z posta na Facebooku:
https://www.facebook.com/ZSPnr1Gorzyce/posts/pfbid0n2uEvFJhRm2iH7F4tLbU2AVqBNBbA6Je3bRTjk9zhgKRmc2Biy4iRad6VKaG1A5tl z dnia 16.10.2023 r.
Oryginalna wizualizacja
Błędy w wizualizacji
1. W wykresie kołowym sporządzone wartości zazwyczaj sumują się do 100%.
Przy takim wyborze wykresu należałoby oznaczyć wycinki liczbą procentów,
a nie ilością oddanych głosów - wtedy wykres byłby czytelniejszy.
2. Wykres jest nieczytelny: można by poszeregować wycinki koła od
największego do najmniejszego, podobnie w kolejności od najbardziej do
najmniej popularnego ugrupowania uszeregować legendę. Oprócz tego można
by zastosować inne kolory (są 2 odcienie niebieskiego i 2 szarego,
ciężkie w rozpozaniu, który jest który).
Poniżej znajduje się kod implementujący wizualizację oraz
wykresy:
library(dplyr)
library(plotly)
df <- data.frame(Partie = c("KW Koalicja Obywatelska", "KW Prawo i Sprawiedliwość", "KW Konfederacja WiN",
"KW Normalny Kraj", "KW Nowa Lewica", "KKW Trzecia Droga", "KW Bezpartyjni Samorządowcy",
"KW Polska Jest Jedna", "KW Polska Liberalna Strajk Przedsiębiorców"),
liczba = c(27, 18, 12, 11, 10, 7, 3, 1, 1))
x <- sum(df$liczba)
df$procenty <- round((df$liczba / x * 100), 2)
Zdecydowałem się na zmodyfikowanie wykresu - na początku jest on słupkowy, ale można go także zmienić na kołowy, by był bardziej interaktywny
dobry_wykres <- plot_ly(df, x = ~reorder(Partie, -procenty), y = ~procenty, type = 'bar',
marker = list(color = 'blue', line = list(color = 'white', width = 2)),
text = ~paste("Partia: ", Partie, "<br>Procent głosów: ", procenty, "%", "<br>Liczba głosów: ", liczba),
hoverinfo = "text",
textposition = "none") %>%
layout(title = "Wyniki symulacji wyborów 2023 w ZSP w Gorzycach",
xaxis = list(title = "Partie", tickangle = 45, categoryorder = "total descending"),
yaxis = list(title = "Procent głosów", tickvals = seq(0, 35, by = 5), ticktext = paste0(seq(0, 35, by = 5), "%")),
updatemenus = list(
list(
x = 0.5, y = 1,
buttons = list(
list(method = "restyle",
args = list("type", "bar"),
label = "Wykres słupkowy"),
list(method = "restyle",
args = list("type", "pie"),
label = "Wykres kołowy")
))),
showlegend = TRUE) %>%
config(displayModeBar = FALSE)
Zalety nad oryginalną wizualizacją:
1. Wykres jest dużo czytelniejszy - od razu widać kolejność popularności
partii.
2. Czytelne osie sprawiają, że od razu można odczytać dokładny wynik
partii, ponadto jest on wyświetlany przy najechaniu na wycinek
koła/słupek.
3. Została dodana informacja o procencie wszystkich głosów.